#include <math.h>
#include "math.h"
#include "vector.h"

//DWORD classifyPoint(Vector3f point, Vector3f pO, Vector3f pN)
//{
//	Vector3f	dir = pO - point; 
//	double		d = dot(dir, pN); 
//
//	if(d < -0.001f)
//		return PLANE_FRONT; 
//	else if(d > 0.001f)
//		return PLANE_BACKSIDE; 
//
//	return ON_PLANE; 
//}

void normalizeVector(Vector3f &v)
{
	const float L = (float) sqrt(v.x * v.x + v.y * v.y + v.z * v.z); 

	if(L == 0.0F)
		v.x = v.y = v.z = 0.0F; 
	else
	{
		v.x /= L; 
		v.y /= L; 
		v.z /= L; 
	}
}

float lengthOfVector(Vector3f &v)
{
	return(sqrt(v.x * v.x + v.y * v.y + v.z * v.z)); 
}

/*
 =======================================================================================================================
    FIXME:
 =======================================================================================================================
 */
void setLength(Vector3f &v, const float l)
{
	float	len = sqrt(v.x * v.x + v.y * v.y + v.z * v.z); 
	if(len == 0.0F)
		v.x = v.y = v.z = 0.0F; 
	else
	{
		len = l / len; 
		v.x *= len; 
		v.y *= len; 
		v.z *= len; 
	}
}